﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using CondominioWeb.Dominio;
using NHibernate;
using NHibernate.Criterion;


namespace CondominioWeb.Persistencia.NHibernate
{
    public class MantenimientoDAO:BaseDAO<Mantenimiento,Int32>

    {
        public ICollection<Mantenimiento> MantenimientoListarTodos()
        {
            using (ISession sesion = NHibernateHelper.AbrirSesion())
            {
                ICollection<Mantenimiento> resultado = sesion
                        .CreateCriteria(typeof(Mantenimiento))
                        .List<Mantenimiento>();
                return resultado;
            }
        }

        public ICollection<Mantenimiento> ListarResidentesMorosos(Int32 nResidente)
        {
            using (ISession sesion = NHibernateHelper.AbrirSesion())
            {
                ICollection<Mantenimiento> resultado = sesion
                        .CreateCriteria(typeof(Mantenimiento))      
                          .Add(Restrictions.Eq("Estado", "0") && Restrictions.Le("Fecha_Pago", DateTime.Now))                          
                          .Add(Restrictions.Le("Fecha_Pago", DateTime.Now))
                        .List<Mantenimiento>();
                return resultado;
            }
        }

        public ICollection<Mantenimiento> ListarCuotasPendientesPago(Int32 nResidente)
        {
            using (ISession sesion = NHibernateHelper.AbrirSesion())
            {
                ICollection<Mantenimiento> resultado = sesion
                        .CreateCriteria(typeof(Mantenimiento))
                        .Add(Restrictions.Eq("Estado", "0"))
                        .List<Mantenimiento>();
                return resultado;
            }
        }
    }
}